/**
 * Created by Brook on 2019/2/25.
 */

const ClientInfo = require('./routes/clientInfo');
const ConversionModel = require('./routes/conversionModel');
const FormatServer = require('./routes/formatServer');
const GetModel = require('./routes/getModel');
const GltfServer = require('./routes/gltfServer');
const StateModel = require('./routes/stateModel');
const WebApi = require('./routes/webApi');
const xrServer = require('./routes/xrServer');

const multipart = require('connect-multiparty');
const multipartMiddleware = multipart();

module.exports = function (app){


    /**
     * 中心数据接口
     */

    app.post('/models/getdata', multipartMiddleware, GetModel.ModelInfo.post_getdata);              //【获取】 - 获取任务
    app.post('/models/status', multipartMiddleware, GetModel.ModelInfo.post_status);                //【查询】 - 模型状态
    app.post('/models/insertinfo', multipartMiddleware, GetModel.ModelInfo.post_insertinfo);        //【记录】 - 模型参数
    app.post('/models/checkmd5', multipartMiddleware, GetModel.ModelInfo.post_checkmd5);            //【查询】 - 判断MD5
    app.post('/models/uuid', multipartMiddleware, GetModel.ModelInfo.post_uuid);                    //【查询】 - 生成uuid
    app.post('/models/choiceTask', multipartMiddleware, GetModel.ModelInfo.post_choicetask);        //【修改】 - 选择解析任务


    app.post('/models/clientinfo', multipartMiddleware, ClientInfo.ClientInfo.post_clientinfo);             //【记录】 - 客户端信息
    app.post('/models/getclientinfo', multipartMiddleware, ClientInfo.ClientInfo.post_getclientinfo);       //【查询】 - 客户端信息

    app.post('/models/receiveState', multipartMiddleware, StateModel.StateModel.post_receiveState);         //【记录 】- 解状状态
    app.post('/models/getState', multipartMiddleware, StateModel.StateModel.post_getState);                 //【查询】 - 解析进度
    app.post('/models/closeTask', multipartMiddleware, StateModel.StateModel.post_closeTask);               //【操作】 - 任务取消
    app.post('/models/attribute', multipartMiddleware, StateModel.StateModel.post_attribute);               //【记录】 - 附加属性

    app.post('/models/parse', multipartMiddleware, ConversionModel.Up_Model.post_parse);                    //【上传】 - 上传模型


    /**
     * 格式转换接口
     */
    app.post('/models/getformatdata', multipartMiddleware, FormatServer.FormatData.post_getdata);       //【获取】-  获取模型转换任务
    app.post('/models/formatdata', multipartMiddleware, FormatServer.FormatData.post_formatdata);       //【获取】-  格式转换完成
    app.post('/models/formatstate', multipartMiddleware, FormatServer.FormatData.post_formatstate);     //【获取】-  格式转换异常
    app.post('/models/getRevitTask', multipartMiddleware, FormatServer.FormatData.post_getrevittask);   //【获取】-  获取revit格式转换


    /**
     * Gltf预处理接口
     */
    app.post('/models/getGltfTask', multipartMiddleware, GltfServer.GltfServer.post_getgltftask);   //【获取】- 获取Gltf预处理任务
    app.post('/models/gltfData', multipartMiddleware, GltfServer.GltfServer.post_gltfdata);         //【记录】- 预处理后的URl
    app.post('/models/gltfState', multipartMiddleware, GltfServer.GltfServer.post_gltfstate);       //【记录】- Gltf预处理状态
    app.get('/models/gltfList', GltfServer.GltfServer.post_gltflist);                               //【查询】- 获取Gltf列表


    /**
     * Web Api接口
     */
    app.post('/modelApi/getList', multipartMiddleware, WebApi.Api_Get.post_getList);                //【查询】 - 获取模型列表
    app.post('/modelApi/modelID', multipartMiddleware, WebApi.Api_Get.post_modelID);                //【查询】 - 查询modelId
    app.post('/modelApi/stateLog', multipartMiddleware, WebApi.Api_Get.post_stateLog);              //【查询】 - 查询状态日志
    app.post('/modelApi/clientInfo', multipartMiddleware, WebApi.Api_Get.post_clientInfo);          //【查询】 - 查询解析客户端信息
    app.post('/modelApi/attributes', multipartMiddleware, WebApi.Api_Get.post_attributes);          //【查询】 - 查询附加属性
    app.post('/modelApi/getQueueNum', multipartMiddleware, WebApi.Api_Get.post_getQueueNum);        //【查询】 - 查询列队数

    app.post('/modelApi/upName', multipartMiddleware, WebApi.Api_Up.post_upName);               //【修改】 - 修改模型名称
    app.post('/modelApi/adjustOrder', multipartMiddleware, WebApi.Api_Up.post_adjustOrder);     //【修改】 - 调整解析优先级
    app.post('/modelApi/againSubmit', multipartMiddleware, WebApi.Api_Up.post_againSubmit);     //【修改】 - 重新提交解析-清空绑定

    app.post('/modelApi/delList', multipartMiddleware, WebApi.Api_Del.post_delList);            //【删除】 - 删除解析任务


    /**
     * 渲染平台 Gltf接口
     */
    app.post('/models/xrParse', multipartMiddleware, xrServer.xrServer.post_xrParse);           //【记录】 - 渲染平台 - 模型上传
    app.post('/models/xrGetGltf', multipartMiddleware, xrServer.xrServer.post_xrGetGltf);       //【查询】 - 渲染平台 - 获取Gltf列表
    app.post('/models/xrGetData', multipartMiddleware, xrServer.xrServer.post_xrGetData);       //【查询】 - 渲染平台 - 获取任务
    app.post('/models/xrGetRvtData', multipartMiddleware, xrServer.xrServer.post_xrGetRvtData); //【查询】 - 渲染平台 - 获取Rvt任务
    app.post('/models/xrUpGltf', multipartMiddleware, xrServer.xrServer.post_xrUpGltf);         //【记录】 - 渲染平台 - 保存Gltf地址
    app.post('/models/xrUpState', multipartMiddleware, xrServer.xrServer.post_xrUpState);       //【更新】 - 渲染平台 - 转换状态


};



